#--- КЛАВИША МОДИФИКАТОР -----------------------------------------
set $mod Mod4


#--- АВТОСТАРТ ---------------------------------------------------
exec --no-startup-id numlockx
exec --no-startup-id ~/.config/i3/themes/i3_one/scripts/launch_polybar.sh
exec --no-startup-id feh --bg-scale ~/.config/i3/themes/i3_one/wallpapers/christopher-gower-m_HRfLhgABo-unsplash.jpg
exec --no-startup-id dunst -conf ~/.config/i3/themes/i3_one/dunst/dunstrc
exec --no-startup-id picom --config ~/.config/i3/themes/i3_one/picom/picom.conf
exec --no-startup-id dex --autostart --environment i3
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork
exec --no-startup-id xss-lock --transfer-sleep-lock -- i3lock --nofork

exec --no-startup-id firefox
exec --no-startup-id telegram-desktop -startintray


#--- ПРИВЯЗКА К ВОРКСПЕЙСАМ --------------------------------------
assign [class="Lutris"] $ws6

#--- ПЛАВАЮЩИЕ ПРИЛОЖЕНИЯ ----------------------------------------
for_window [class="Lutris"] floating enable
for_window [class="Lutris"] resize set 1200 700
for_window [class="Lutris"] move absolute position center

for_window [class="TelegramDesktop"] floating enable
for_window [class="TelegramDesktop"] move absolute position center

for_window [class="firefox"] floating enable
for_window [class="firefox"] resize set 1600 900
for_window [class="firefox"] move absolute position center

for_window [class="Viewnior"] floating enable
for_window [class="Viewnior"] move absolute position center

for_window [class="mpv"] floating enable
for_window [class="mpv"] resize set 1200 900
for_window [class="mpv"] move absolute position center


#--- ФОКУС НА ПРИЛОЖЕНИЕ ПРИ ЗАПУСКЕ -----------------------------
for_window [class="Lutris"] focus

#--- ШРИФТЫ В ЗАГОЛОВКАХ ОКОН ------------------------------------
font pango:monospace 8


#--- ГАПСЫ -------------------------------------------------------
gaps inner 10
gaps outer 4
smart_gaps off #Выключить когда одно окно


#--- ОТКЛЮЧЕНИЕ ЗАГОЛОВКА ОКНА -----------------------------------
default_border pixel 0

#--- РАЗМЕР РАМОК ОКНА -------------------------------------------
for_window [tiling] border pixel 2
for_window [floating] border pixel 2

#--- ОТКЛЮЧЕНИЕ РАМОК ДЛЯ ПОЛНОЭКРАННЫХ ПРИЛОЖЕНИЙ ---------------
smart_borders on

# ЦВЕТ РАМОК
#                       Рамка   Фон   Индикатор Родительская_рамка
client.focused			#e1e2e6 #e1e2e6 #e1e2e6 #e1e2e6
client.focused_inactive		#292c37 #292c37 #292c37 #292c37
client.unfocused		#292c37 #292c37 #292c37 #292c37
client.urgent			#292c37 #292c37 #292c37 #292c37
client.placeholder		#292c37 #292c37 #292c37 #292c37


#--- КНОПКИ УПРАВЛЕНИЯ ЗВУКОМ _-----------------------------------
set $refresh_i3status killall -SIGUSR1 i3status
bindsym XF86AudioRaiseVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ +10% && $refresh_i3status
bindsym XF86AudioLowerVolume exec --no-startup-id pactl set-sink-volume @DEFAULT_SINK@ -10% && $refresh_i3status
bindsym XF86AudioMute exec --no-startup-id pactl set-sink-mute @DEFAULT_SINK@ toggle && $refresh_i3status
bindsym XF86AudioMicMute exec --no-startup-id pactl set-source-mute @DEFAULT_SOURCE@ toggle && $refresh_i3status


#--- КЛАВИША ДЛЯ УПРАВЛЕНИЯ ПЛАВАЮЩИМИ ОКНАМИ МЫШЬЮ --------------
floating_modifier $mod


#--- ПЕРЕТАСКИВАТЬ ПЛАВАЮЩЕЕ ОКНО ЗА ЗАГОЛОВОК -------------------
tiling_drag modifier titlebar


#--- ЗАПУСК ПРИЛОЖЕНИЙ -------------------------------------------
bindsym $mod+Return exec alacritty --config-file ~/.config/i3/themes/i3_one/alacritty/alacritty.yml 
bindsym $mod+d exec --no-startup-id rofi -show drun -config .config/i3/themes/i3_one/rofi/menu.rasi -show-icons
bindsym $mod+n exec --no-startup-id nemo
bindsym $mod+i exec --no-startup-id inkscape
bindsym $mod+b exec --no-startup-id blender
bindsym $mod+g exec --no-startup-id lutris
bindsym $mod+Print exec --no-startup-id scrot
bindsym $mod+Ctrl+p exec --no-startup-id ~/.config/i3/themes/i3_one/scripts/powermenu.sh


#--- УБИТЬ ОКНО --------------------------------------------------
bindsym $mod+Shift+q kill


#--- ПЕРЕКЛЮЧЕНИЕ ФОКУСА -----------------------------------------
bindsym $mod+j focus left
bindsym $mod+k focus down
bindsym $mod+l focus up
bindsym $mod+semicolon focus right

bindsym $mod+Left focus left
bindsym $mod+Down focus down
bindsym $mod+Up focus up
bindsym $mod+Right focus right


#--- ПЕРЕМЕЩЕНИЕ ОКНА --------------------------------------------
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+semicolon move right

bindsym $mod+Shift+Left move left
bindsym $mod+Shift+Down move down
bindsym $mod+Shift+Up move up
bindsym $mod+Shift+Right move right


#--- ГОРИЗОНТАЛЬНАЯ ОРИЕНТАЦИЯ ОКОН ------------------------------
bindsym $mod+h split h


#--- ВЕРТИКАЛЬНАЯ ОРИЕНТАЦИЯ ОКОН --------------------------------
bindsym $mod+v split v


#--- ФУЛСКРИН ----------------------------------------------------
bindsym $mod+f fullscreen toggle


#--- ПЕРЕКЛЮЧЕНИЕ МАКЕТОВ ----------------------------------------
bindsym $mod+s layout stacking
bindsym $mod+w layout tabbed
bindsym $mod+e layout toggle split


#--- ПЕРЕХОД В ПЛАВАЮЩИЙ РЕЖИМ И ИЗ НЕГО -------------------------
bindsym $mod+Shift+space floating toggle


#--- ПЕРЕКЛЮЧЕНИЕ МЕЖДУ ФЛОАТ И ТАЙЛИНГ --------------------------
bindsym $mod+space focus mode_toggle


#--- ВЫДЕЛИТЬ ВСЕ ОКНА -------------------------------------------
bindsym $mod+a focus parent


#--- ЯХЗ ЧТО ЭТО ТАКОЕ -------------------------------------------
#bindsym $mod+d focus child


#--- ИМЕНА ВОРКСПЕЙСОВ -------------------------------------------
set $ws1 "1"
set $ws2 "2"
set $ws3 "3"
set $ws4 "4"
set $ws5 "5"
set $ws6 "6"
set $ws7 "7"
set $ws8 "8"
set $ws9 "9"
set $ws10 "10"


#--- ПЕРЕКЛЮЧЕНИЕ ВОРКСПЕЙСОВ ------------------------------------
bindsym $mod+1 workspace number $ws1
bindsym $mod+2 workspace number $ws2
bindsym $mod+3 workspace number $ws3
bindsym $mod+4 workspace number $ws4
bindsym $mod+5 workspace number $ws5
bindsym $mod+6 workspace number $ws6
bindsym $mod+7 workspace number $ws7
bindsym $mod+8 workspace number $ws8
bindsym $mod+9 workspace number $ws9
bindsym $mod+0 workspace number $ws10


#--- ПЕРЕМЕЩЕНИЯ ОКОН МЕЖДУ ВОКРСПЕЙСАМИ  ------------------------
bindsym $mod+Shift+1 move container to workspace number $ws1
bindsym $mod+Shift+2 move container to workspace number $ws2
bindsym $mod+Shift+3 move container to workspace number $ws3
bindsym $mod+Shift+4 move container to workspace number $ws4
bindsym $mod+Shift+5 move container to workspace number $ws5
bindsym $mod+Shift+6 move container to workspace number $ws6
bindsym $mod+Shift+7 move container to workspace number $ws7
bindsym $mod+Shift+8 move container to workspace number $ws8
bindsym $mod+Shift+9 move container to workspace number $ws9
bindsym $mod+Shift+0 move container to workspace number $ws10


#--- ПЕРЕЗАГРУЗКА КОНФИГА ----------------------------------------
bindsym $mod+Shift+c reload


#--- РЕСТАРТ I3 --------------------------------------------------
bindsym $mod+Shift+r restart


#--- ВЫХОД ИЗ I3 -------------------------------------------------
bindsym $mod+Shift+e exec "i3-nagbar -t warning -m 'You pressed the exit shortcut. Do you really want to exit i3? This will end your X session.' -B 'Yes, exit i3' 'i3-msg exit'"


#--- НАСТРОЙКИ РЕСАЙЗА -------------------------------------------
mode "resize" {

        # Изменение размеров в какую-то сторону на сколько-то пикселей
        bindsym j resize shrink width 10 px or 10 ppt
        bindsym k resize grow height 10 px or 10 ppt
        bindsym l resize shrink height 10 px or 10 ppt
        bindsym semicolon resize grow width 10 px or 10 ppt

        # Изменение размеров в какую-то сторону на сколько-то пикселей
        bindsym Left resize shrink width 10 px or 10 ppt
        bindsym Down resize grow height 10 px or 10 ppt
        bindsym Up resize shrink height 10 px or 10 ppt
        bindsym Right resize grow width 10 px or 10 ppt

        # Выход из режима ресайза
        bindsym Return mode "default"
        bindsym Escape mode "default"
        bindsym $mod+r mode "default"
}


#--- ПЕРЕХОД В РЕЖИМ РЕСАЙЗА -------------------------------------
bindsym $mod+r mode "resize"


#--- ВКЛЮЧЕНИЕ I3bar ---------------------------------------------
#bar {
#        status_command i3status
#}
